Conventional I/O drivers run on host computers (“hosts”) connected to disk arrays and process I/O requests originating from user application programs running on the hosts. I/O requests include directions to read data from and write data to the disk arrays connected to the hosts.
I/O drivers can perform many functions. As part of processing I/O requests, certain I/O drivers perform multipathing (i.e., connecting to arrays through multiple paths to provide load balancing and failover), provide encryption of data, and assist with data migration. An example of an I/O driver of this type is the PowerPath® driver from EMC Corporation of Hopkinton, Mass.
As I/O drivers process I/O requests, the I/O drivers may collect performance data relating to the I/O requests. For example, I/O drivers may count the number of I/O requests received. Such performance data are typically stored in the I/O driver and can be extracted by a client program running on the host, or on a different host, to monitor performance.